package com.fneuch.game.minis.w40k.rules.characteristics;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.format.annotation.NumberFormat;
import org.springframework.format.annotation.NumberFormat.Style;

import com.fneuch.game.minis.DefenderStatsProfile;
import com.fneuch.game.minis.ShooterStatsProfile;

public class ModelCharacteristicProfile implements ShooterStatsProfile, DefenderStatsProfile {

	@Size(min=1, max=6)
	private String id;
	
	@Size(min=1, max=60)
	private String name;
	
	@Min(0)
	@Max(10)
	@NumberFormat(style = Style.NUMBER)
	private int weaponSkill;
	
	@Min(0)
	@Max(10)
	private int ballisticSkill;
	
	@Min(0)
	@Max(10)
	private int strength;
	
	@Min(0)
	@Max(10)
	private int toughness;
	
	@Min(1)
	@Max(10)
	private int wound;
	
	@Min(0)
	@Max(10)
	private int save;
	
	@Min(0)
	@Max(10)
	private int invulnerable;
	
	private int armorPercing = -1;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getWeaponSkill() {
		return weaponSkill;
	}
	public void setWeaponSkill(int weaponSkill) {
		this.weaponSkill = weaponSkill;
	}
	public int getBallisticSkill() {
		return ballisticSkill;
	}
	public void setBallisticSkill(int ballisticSkill) {
		this.ballisticSkill = ballisticSkill;
	}
	public int getStrength() {
		return strength;
	}
	public void setStrength(int strength) {
		this.strength = strength;
	}
	public int getToughness() {
		return toughness;
	}
	public void setToughness(int toughness) {
		this.toughness = toughness;
	}
	public int getWound() {
		return wound;
	}
	public void setWound(int wound) {
		this.wound = wound;
	}
	public int getSave() {
		return save;
	}
	public void setSave(int save) {
		this.save = save;
	}
	public int getInvulnerable() {
		return invulnerable;
	}
	public void setInvulnerable(int invulnerable) {
		this.invulnerable = invulnerable;
	}
	public void setArmorPercing(int armorPercing) {
		this.armorPercing = armorPercing;
	}
	@Override
	public int getArmorPercing() {
		return armorPercing;
	}
	
		
}
